package com.todo.user.api;

import com.todo.common.common.entity.response.BizResponse;
import com.todo.user.api.request.QueryUserAccountByUserNameRequest;
import com.todo.user.api.request.RegisterUserAccountByNameRequest;
import com.todo.user.api.request.RemoveUserAccountByUserNameRequest;
import com.todo.user.api.request.UpdateUserSecretRequest;
import com.todo.user.api.response.UserAccountResponse;

/**
 * @author azhebuxing
 * @date 2025/2/21 02:04
 * @description
 */
public interface UserAccountApi {

    /**
     * 注册用户
     *
     * @param request
     * @return
     */
    BizResponse<Boolean> registerUserAccountByName(RegisterUserAccountByNameRequest request);

    /**
     * 根据用户名查询用户信息
     *
     * @param request
     * @return
     */
    BizResponse<UserAccountResponse> queryUserAccountByUserName(QueryUserAccountByUserNameRequest request);

    /**
     * 更新用户密码
     *
     * @param request
     * @return
     */
    BizResponse<Boolean> updateUserSecret(UpdateUserSecretRequest request);

    /**
     * 根据用户名删除用户信息(注销)
     *
     * @param request
     * @return
     */
    BizResponse<Boolean> removeUserAccountByUserName(RemoveUserAccountByUserNameRequest request);

    /**
     * 根据用户id查询用户详细信息
     *
     * @param userId
     * @return
     */
    BizResponse<UserAccountResponse> queryUserAccountByUserId(Long userId);

}
